

//class Solution {
//    public int[][] merge(int[][] intervals) {
//        List<List<Integer>> arr = new ArrayList<>();
//        for (int[] x : intervals) {
//            arr.add(Arrays.asList(x[0], x[1]));
//        }
//        Collections.sort(arr, new Comparator<>() {
//            public int compare(List<Integer> o1, List<Integer> o2) {
//                return o1.get(0) - o2.get(0);
//            }
//        });
//        List<List<Integer>> ret = new ArrayList<>();
//        ret.add(arr.get(0));
//        int j = 0;
//        for (int i = 1; i < arr.size(); i++) {
//            List<Integer> arr1 = ret.get(j);
//            List<Integer> arr2 = arr.get(i);
//            if (arr2.get(0) <= arr1.get(1)) {
//                arr1.set(1, Math.max(arr1.get(1), arr2.get(1)));
//            } else {
//                ret.add(arr2);
//                j++;
//            }
//        }
//        int[][] ans = new int[ret.size()][2];
//        for (int i = 0; i < ret.size(); i++) {
//            List<Integer> arr1 = ret.get(i);
//            ans[i][0] = arr1.get(0);
//            ans[i][1] = arr1.get(1);
//        }
//        return ans;
//    }
//}